package org.dingyom.gift.service.impl;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.dingyom.gift.exception.BusinessException;
import org.dingyom.gift.exception.asserts.Assert;
import org.dingyom.gift.exception.code.StatusCode;
import org.dingyom.gift.properties.AliossProperties;
import org.dingyom.gift.service.IAliossService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.io.File;
import java.util.UUID;


@Service
public class AliossServiceImpl implements IAliossService {
    @Autowired
    private AliossProperties properties;
    @Override
    public void delete(String path) {
// Endpoint以杭州为例，其它Region请按实际情况填写。
        String endpoint = "https://"+properties.getEndpoint()+"/";
        // 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录RAM控制台创建RAM账号。
        String accessKeyId = properties.getAccessKey();
        String accessKeySecret = properties.getSecretKey();
        String bucketName = properties.getBucketName();
        // <yourObjectName>上传文件到OSS时需要指定包含文件后缀在内的完整路径，例如abc/efg/123.jpg。

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        // 获取文件名
        String fileBaseUrl = "https://"+bucketName+"."+properties.getEndpoint()+"/";
        String fileName = path.replace(fileBaseUrl, "");//文件名
        boolean exist = ossClient.doesObjectExist(bucketName, fileName);//判断文件是否存在
        StatusCode code = StatusCode.CODE_400_OSS_FILE_EXSIT;
        Assert.isTrue(exist,code);

        //删除文件
        ossClient.deleteObject(bucketName, fileName);
        ossClient.shutdown();
        // 关闭OSSClient。
        ossClient.shutdown();
    }
}
